package com.mjt.dongbao.common.base.exceptionHandle;

import com.mjt.dongbao.common.base.execption.TokenExecption;
import com.mjt.dongbao.common.base.result.ResultWrapper;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;

/**
 * @Description 统一异常处理，通过 AOP 切面的方式对所有接口的错误捕获处理
 * @Author mjt
 * @Time 2021/12/31
 */

@ResponseBody
@ControllerAdvice
public class GlobalExceptionHandler {

    // 关于数学运算的异常处理
    @ExceptionHandler(ArithmeticException.class)
    public ResultWrapper arithmeticException(){
        return ResultWrapper.builder().code(301).msg("出现数学处理异常").build();
    }

    /**
     * 
     * @Description: 自定义 token 异常处理
     * @Author mjt
     * @Date 2022/1/13
     */
    @ExceptionHandler({TokenExecption.class})
    public ResultWrapper tokenException(Exception e){
        return ResultWrapper.builder().code(1003).msg(e.getMessage()).build();
    }
}
